{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a2137b44",
   "metadata": {},
   "source": [
    "# 由于上面的目标检测的效率过于低下，这一部分主要是提高效率"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20904786",
   "metadata": {},
   "source": [
    "<img src=\"./picture/滑动窗口的实现1.png\" alt=\"Drawing\" style=\"width: 500px;\" align=\"left\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8627749e",
   "metadata": {},
   "source": [
    "这里展示的是使用卷积层来代替全连接层：\n",
    "\n",
    "通常来说，在max_pool后面进行操作，按照上述的图片，首先使用5 * 5 * 16 * 400的数量大小的卷积核去对数据进行处理，然后再使用1 * 1的卷积核，最后再使用一个1 * 1的卷积核输出4个分类\n",
    "\n",
    "上述的过程就是滑动窗口的基本原理。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "40636242",
   "metadata": {},
   "source": [
    "# 卷积的滑动窗口"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "84221e26",
   "metadata": {},
   "source": [
    "<img src=\"./picture/滑动2.png\" alt=\"Drawing\" style=\"width: 500px;\" align=\"left\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "62a6dd43",
   "metadata": {},
   "source": [
    "这里的知识点超级重要，讲述了滑动卷积的基本原理。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "76fa142e",
   "metadata": {},
   "source": [
    "1.首先，如果按照常规的卷积，例如第一个图片是14 * 14 * 3的一个图片，最后的输出结果是一个1 * 1 * 4的图像\n",
    "\n",
    "2.然后如果按照前面的说法，好像要讲所有的卷积都进行一次操作，但是其实不必这个样子，从第二个图片可以看出来，其实有很多重复的地方\n",
    "这个时候可以使用滑动卷积，也就是说这个16 * 16 * 3的图片用5 * 5 * 3的卷积核去卷，操作都和训练集是一样的。\n",
    "\n",
    "3.操作都是一样的，那要怎么解释一下最终的输出呢，这个我目前看的有点懵懵懂懂的，估计只能说个大概。可以看出训练集（也就是14 * 14 * 3）的\n",
    "当做一个卷积核，然后max_pool这个就当做stride，最后可以得出答案。例如上面的16 * 16 * 3，最终的输出就是2 * 2 * 4.\n",
    "\n",
    "4.这里要怎么说呢，我的感觉就是，你使用的训练集14 * 14 * 3 内部其实已经卷积了（就是第一步的操作），然后遇到不同大小的图片，使用训练集大小的当做卷积核\n",
    "得到的答案就是按照训练集那样子弄出来的结果（结果是w * h * 4）这个我不知道怎么说，我好像意会了一点...\n",
    "\n",
    "5.h后续去做做项目来弄明白吧"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "855cecba",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
